package doc2db.interfaces.mainWindow;

import java.awt.BorderLayout;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

/**
 *
 * @author yura
 */
public class MyJEditorPane extends JEditorPane {

    /** Отображается ли таблица */
    public boolean isInTable = false;

    /** Наведён ли указатель на гипер ссылку */
    public boolean isOnHyperLink = false;

    /** Текст внутри гипер ссылки */
    public String HyperLinkName = "";

    /** Если отображается таблица, то её имя, иначе "__NULL" */
    public String tableName = "__NULL";

    /** Данные внутри таблицы */
    public String table [] [] = null;

    /** Заголовок таблицы */
    public String head [] = null;

    /** Панель прокрутки на которой находится данная панель */
    private JScrollPane root = null;

    /** Панель на которой находится панель прокрутки */
    private JPanel rootPnl = null;

    @Override
    public void setText(String arg0) {
        super.setText(arg0);
        isInTable = false;
    }

    @Override
    public void setPage(String arg0) throws IOException {
        super.setPage(arg0);
        setOnRoot();
    }

    public void setRoot(JScrollPane r){
        root = r;
    }

    public JScrollPane getRoot(){
        return root;
    }

    public JPanel getRootPnl() {
        return rootPnl;
    }

    public void setRootPnl(JPanel rootPnl) {
        this.rootPnl = rootPnl;
    }

    /**
     * Если панель прокрутки, на которой находится данная панель,
     * не равна нулю то, данная панель устанавливается главным
     * компонетном панели прокрутки. 
     */
    public void setOnRoot() {
        if (root != null) {
            root.setViewportView(this);
        }
        if (rootPnl != null) {
            rootPnl.removeAll();
            if (rootPnl.getLayout() instanceof BorderLayout) {
                rootPnl.add(root, BorderLayout.CENTER);
            } else {
                rootPnl.add(root);
            }
        }
        isInTable = false;
    }
}